package dp.解码;

public class Test {
    // 1. 创建dp表
    // 2. 初始化
    // 3. 填表
    // 4. 返回值
    public int numDecodings(String ss) {
        // 1
        int n = ss.length();
        char[] s = ss.toCharArray();
        int[] dp = new int[n+1];

        // 2
        dp[0] = 1;
        if(s[1-1] != '0') dp[1] = 1;

        // 3
        for(int i = 2; i <= n; i++) {
            if(s[i-1] != '0') dp[i] += dp[i-1];
            int t2 = (s[i-2] - '0') * 10 + (s[i-1] - '0');
            if(t2 >= 10 && t2 <= 26) dp[i] += dp[i-2];
        }

        // 4
        return dp[n];

    }

}
